// 使用说明页面
import { goToPage, PAGES } from '../../../config/pages.js';

Page({
  data: {
    searchText: '',
    activeQuestion: '',
    filteredQuestions: [],
    allQuestions: [],
    categories: {
      account: { name: '账号相关', icon: 'fa-user-circle', visible: true },
      publish: { name: '发布相关', icon: 'fa-plus-circle', visible: true },
      trade: { name: '交易相关', icon: 'fa-handshake', visible: true },
      security: { name: '安全与信用', icon: 'fa-shield-alt', visible: true },
      points: { name: '积分相关', icon: 'fa-gift', visible: true },
      other: { name: '其他常见问题', icon: 'fa-question-circle', visible: true }
    }
  },

  onLoad() {
    console.log('帮助页面加载完成');
    this.initQuestions();
  },

  // 初始化问题列表
  initQuestions() {
    const questions = [
      { 
        id: 'register', 
        title: '如何注册账号', 
        category: 'account',
        content: '1. 勾选【已阅读并同意《隐私政策》和《服务协议》】\n2. 填写手机号和验证码，完成首次注册和登录。\n3. 再次登录，点击【手机号快速验证】完成登录'
      },
      { 
        id: 'member', 
        title: '如何成为付费会员', 
        category: 'account',
        content: '1. 首页点击【早鸟价¥365元/年立即开通】后，进入付费会员注册页面，点击【¥365元/年立即开通】完成在线支付，即成为付费会员'
      },
      { 
        id: 'publish-product', 
        title: '如何发布产品信息', 
        category: 'publish',
        content: '1. 点击底部tab栏【发布】，进入发布首页。\n2. 根据需要，点击【发布材料】/【发布加工】/【发布库存】，填写产品类别、产品名称等产品信息后，点击【发布】完成提交。\n\n备注：发布前，需成为付费会员。'
      },
      { 
        id: 'publish-demand', 
        title: '如何发布求购信息', 
        category: 'publish',
        content: '1. 点击底部tab栏【发布】，进入发布首页。\n2. 根据需要，点击【发布拼单】/【发布求购】，填写产品类别、产品名称等求购信息后，点击【发布】完成提交。\n\n备注：发布前，需成为付费会员。'
      },
      { 
        id: 'group-order', 
        title: '如何参与拼单', 
        category: 'trade',
        content: '1. 在首页点击【来拼单】，可以看到各类拼单信息。\n2. 选中某个拼单后，进入详情，点击【参与拼单】即可参与拼单中。'
      },
      { 
        id: 'inquiry', 
        title: '如何对材料、加工、散料进行询价', 
        category: 'trade',
        content: '1. 在首页点击【找材料商】/【找加工商】/【找散料】，可以看到各类供应信息。\n2. 选中某个供应信息后，比如点击【找散料】进入详情，点击【立即询价】填写联系方式及询价内容后，即完成询价，等待供应商联系。'
      },
      { 
        id: 'quote', 
        title: '如何对求购进行接单报价', 
        category: 'trade',
        content: '1. 在底部tab点击【求购】，可以看到各类求购信息。\n2. 点击求购信息进入详情，点击【提交接单】填写联系方式及接单内容后，即完成接单报价，等待求购人联系。'
      },
      { 
        id: 'report', 
        title: '如何进行虚假内容举报', 
        category: 'security',
        content: '1. 进入要举报的内容详情页（材料/加工/散料/求购等）\n2. 点击右上角"举报"icon\n3. 选择举报原因：虚假信息、价格欺诈、侵权内容、违规宣传、其他\n4. 提交举报'
      },
      { 
        id: 'earn-points', 
        title: '如何获取积分', 
        category: 'points',
        content: '1. 成功推荐 1 人注册并完成小程序个人或企业认证，推荐人可获得 100 积分 / 人。\n2. 完成小程序个人认证，可获得 50 积分，每个手机号限 1次；完成小程序企业认证，可获得 500 积分，每个手机号限 1 次。\n3. 每日登录小程序完成签到，可获得 10 积分 / 次，每日限 1 次。\n4. 在发布入口上传 1 条信息，可获得 50 积分 / 条，上传数量不限。\n5. 注册365元/年的付费会员，享1.5倍积分(仅限付费手机号)'
      },
      { 
        id: 'use-points', 
        title: '如何使用积分', 
        category: 'points',
        content: '积分商城兑换\n会员可在积分商城使用累计积分兑换商品或服务，兑换品类包括但不限于：办公用品、健康食品、培训活动、团建活动'
      },
      { 
        id: 'contact', 
        title: '如何联系客服', 
        category: 'other',
        content: '点击底部tab栏【客服】，填写留言信息，进行在线提交；或者拨打客服热线进行直接沟通'
      }
    ];
    
    this.setData({
      allQuestions: questions,
      filteredQuestions: questions
    });
    
    console.log(`共有 ${questions.length} 个常见问题`);
  },

  // 搜索功能
  onSearchInput(e) {
    const searchText = e.detail.value.toLowerCase();
    this.setData({
      searchText: searchText
    });
    
    this.filterQuestions(searchText);
  },

  // 过滤问题
  filterQuestions(searchText) {
    const { allQuestions, categories } = this.data;

    if (!searchText) {
      // 重置所有分类为可见
      const resetCategories = {};
      Object.keys(categories).forEach(key => {
        resetCategories[`categories.${key}.visible`] = true;
      });
      
      this.setData({
        filteredQuestions: allQuestions,
        ...resetCategories
      });
      return;
    }

    // 过滤问题：搜索标题和内容
    const filtered = allQuestions.filter(question => 
      question.title.toLowerCase().includes(searchText) ||
      question.content.toLowerCase().includes(searchText)
    );

    // 更新分类可见性：只显示有匹配问题的分类
    const updatedCategories = {};
    Object.keys(categories).forEach(categoryKey => {
      const hasMatchingQuestions = filtered.some(question => question.category === categoryKey);
      updatedCategories[`categories.${categoryKey}.visible`] = hasMatchingQuestions;
    });

    this.setData({
      filteredQuestions: filtered,
      ...updatedCategories
    });
  },

  // 切换问题展开/收起
  toggleQuestion(e) {
    const questionId = e.currentTarget.dataset.question;
    const currentActive = this.data.activeQuestion;
    
    // 如果点击的是已展开的项，则收起
    if (currentActive === questionId) {
      this.setData({
        activeQuestion: ''
      });
    } else {
      // 展开当前项
      this.setData({
        activeQuestion: questionId
      });
      
      // 滚动到可视区域
      setTimeout(() => {
        wx.pageScrollTo({
          selector: `[data-question="${questionId}"]`,
          duration: 300
        });
      }, 300);
    }
  },

  // 联系客服
  contactService() {
    // 使用switchTab跳转到客服tab页面
    goToPage(PAGES.LOGS, {}, 'switchTab');
  },

  // 页面分享
  onShareAppMessage() {
    return {
      title: '使用说明 - 模切材料小管家',
      path: '/pages/common/help/help'
    };
  },

  // 页面分享到朋友圈
  onShareTimeline() {
    return {
      title: '使用说明 - 模切材料小管家'
    };
  }
});
